﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using prjKQXS_DLL;
using prjKQXS_DLL.Hop_dong;

namespace prjKQXS_UI.Hop_dong
{
    public partial class frmHoiDong : DevExpress.XtraEditors.XtraForm
    {
        public frmHoiDong()
        {
            InitializeComponent();
        }

        DMHOIDONG_DAL dmhoidong_dal = new DMHOIDONG_DAL();
        private void frmHoiDong_Load(object sender, EventArgs e)
        {
            LoadData();
            gvHoidong.OptionsBehavior.Editable = false;
        }

        private void frmHoiDong_Shown(object sender, EventArgs e)
        {
            cbSua.Enabled = clsCommon.hasPermission(BienTc.UserID, (int)BienTc.eFunction.B_SuaDanhSachHoiDong);
        }

        public void LoadData()
        {
            gcHoidong.DataSource = dmhoidong_dal.getAllHoiDong(!chkKhoiphuc.Checked);
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            if (btnThem.Tag.ToString() == "BT")
            {
                DMHOIDONG dmhoidong = new DMHOIDONG();
                dmhoidong.Mahoidong = clsCommon.laymadt("DMHOIDONG", "Mahoidong", 2);
                dmhoidong.Tenhoidong = "Ten moi";
                dmhoidong_dal.InsertDMHOIDONG(dmhoidong);
            }
            else
            {
                if (gcHoidong.DataSource != null && ((DataTable)gcHoidong.DataSource).Rows.Count > 0)
                {
                    if (clsCommon.MsgBox("Khôi phục dòng này ?", 2) == DialogResult.Yes)
                    {
                        clsCommon.deleteRestoreRow("DMHOIDONG", "Where ID = " + gvHoidong.GetFocusedDataRow()["ID"].ToString(), true);
                    }
                }
            }
            LoadData();
            gvHoidong.FocusedRowHandle = ((DataTable)gcHoidong.DataSource).Rows.Count - 1;
             int  i = gvHoidong.FocusedRowHandle;
        }
        private bool isEdit = false;
        private void gvHoidong_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
         
            if (!isEdit)
            {
                try
                {
                    if (e.Column.FieldName == "Mahoidong")
                    {
                       string ma_hd = e.Value.ToString();
                        if (dmhoidong_dal.checkMahoidong(ma_hd))
                        {
                            clsCommon.updateRowValue("DMHOIDONG", e.Column.FieldName, "Where ID = " + gvHoidong.GetFocusedDataRow()["ID"].ToString(), e.Value);
                        }
                        else
                        {
                            clsCommon.MsgBox("Mã đối tượng này đã có trong hệ thống, chọn mã khác !", 0);
                            isEdit = true;
                            gvHoidong.SetRowCellValue(e.RowHandle, "Mahoidong", "");
                            isEdit = false;
                        }
                    }
                    else
                    {
                        clsCommon.updateRowValue("DMHOIDONG", e.Column.FieldName, "Where ID = " + gvHoidong.GetFocusedDataRow()["ID"].ToString(), e.Value);
                    }
                }
                catch
                {

                }
            }
        }
        private void btnSua_CheckedChanged(object sender, EventArgs e)
        {
            if (cbSua.Checked)
            {
                enableControl(true);
                gvHoidong.OptionsBehavior.Editable = true;
            }
            else
            {
                gvHoidong.OptionsBehavior.Editable = false;
                chkKhoiphuc.Checked = false;
                enableControl(false);
            }
        }
        private void enableControl(bool state)
        {
            btnThem.Enabled = state;
            btnXoa.Enabled=state;
            chkKhoiphuc.Enabled=state;
            btnIn.Enabled=state;
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnXoa_Click(object sender, EventArgs e)
        {
            object o = clsCommon.getCellValue("DMHOIDONG", "Tenhoidong", "Where ID=" + gvHoidong.GetFocusedDataRow()["ID"].ToString());
            string ma = o.ToString();
            if (chkKhoiphuc.Checked)
            {
                if (gcHoidong.DataSource != null && ((DataTable)gcHoidong.DataSource).Rows.Count > 0)
                {
                    if (clsCommon.MsgBox("Ở chế độ khôi phục sẽ bị xóa hoàn toàn khỏi hệ thống, bạn có chắc chắn xóa hội đồng có tên là " + ma, 2) == System.Windows.Forms.DialogResult.Yes)
                    {
                        clsCommon.ExecuteQuery("delete DMHOIDONG where ID = " + gvHoidong.GetFocusedDataRow()["ID"].ToString());
                        LoadData();
                    }
                }
            }
            else
            {
                if (gcHoidong.DataSource !=null && ((DataTable) gcHoidong.DataSource).Rows.Count>0)
                {
                    if (clsCommon.MsgBox("Bạn có chắc chắn muốn xóa hội đồng có tên là " + ma, 2) == DialogResult.Yes)
                    {
                        clsCommon.deleteRestoreRow("DMHOIDONG", "where ID = " + gvHoidong.GetFocusedDataRow()["ID"].ToString(), false);
                        LoadData();
                    }
                }
            }
        }

        private void chkKhoiphuc_CheckedChanged(object sender, EventArgs e)
        {
            if (chkKhoiphuc.Checked)
            {
                btnThem.Tag = "KP";
                btnThem.Text ="&Khôi phục";
            }
            else
            {
                btnThem.Tag="BT";
                btnThem.Text = "F2. &Thêm";
            }
            LoadData();
        }

        private void btnLoc_Click(object sender, EventArgs e)
        {
            if (btnLoc.Tag.ToString() == "LOC")
            {
                btnLoc.Tag="BL";
                btnLoc.Text = "F5. &Bỏ tìm";
                gvHoidong.OptionsView.ShowAutoFilterRow=true;
            }
            else
            {
                gvHoidong.OptionsView.ShowAutoFilterRow=false;
                btnLoc.Tag="LOC";
                btnLoc.Text = "F5. &Tìm kiếm";
                gvHoidong.ClearColumnsFilter();
            }
        }
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            if (keyData == Keys.F2)
            {
                if (cbSua.Checked)
                {
                    btnThem_Click(null, null);
                }
            }
            else if (keyData == Keys.F3)
            {
                cbSua.Checked = !cbSua.Checked;
            }
            else if (keyData == Keys.F4)
            {
                if (cbSua.Checked)
                {
                    btnXoa_Click(null, null);
                }
            }
            else if (keyData == Keys.F5)
            {
                btnLoc_Click(null, null);
            }
            else if (keyData == Keys.F6)
            {
                btnIn_Click(null, null);
            }
            else if (keyData==Keys.F7)
            {
                btnThoat_Click(null,null);
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }

        private void btnIn_Click(object sender, EventArgs e)
        {
            BienTc.Inbaocao = btnIn.Tag.ToString();
            frmIn frm = new frmIn();
            frm.Show();
        }
    }
}